<?php
/**
 * ALIPAY API: alipay.user.trade.search request
 *
 * @author auto create
 *
 * @since  1.0, 2018-03-14 11:11:45
 */

namespace Alipay\Request;

class AlipayUserTradeSearchRequest extends AbstractAlipayRequest
{
    /**
     * 支付宝订单号，为空查询所有记录
     **/
    private $alipayOrderNo;
    /**
     * 结束时间。与开始时间间隔在七天之内
     **/
    private $endTime;
    /**
     * 商户订单号，为空查询所有记录
     **/
    private $merchantOrderNo;
    /**
     * 订单来源，为空查询所有来源。淘宝(TAOBAO)，支付宝(ALIPAY)，其它(OTHER)
     **/
    private $orderFrom;
    /**
     * 订单状态，为空查询所有状态订单。例如：等待买家付款（WAIT_BUYER_PAY），等待卖家发货（WAIT_SELLER_SEND_GOODS），等待买家确认收货（WAIT_BUYER_CONFIRM_GOODS），交易完成（TRADE_FINISHED），交易关闭（TRADE_CLOSED），交易成功（TRADE_SUCCESS）
     **/
    private $orderStatus;
    /**
     * 订单类型，为空查询所有类型订单。例如：交易（TRADE）,CAE代扣（CAE）,代付（PEERPAY）,转账到卡（TRANSFER）
     **/
    private $orderType;
    /**
     * 页码。取值范围:大于零的整数; 默认值1
     **/
    private $pageNo;
    /**
     * 每页获取条数。最大值500。
     **/
    private $pageSize;
    /**
     * 开始时间，时间必须是今天范围之内。格式为yyyy-MM-dd HH:mm:ss，精确到秒(升级后的api 1.1版本)
     **/
    private $startTime;

    public function setAlipayOrderNo($alipayOrderNo)
    {
        $this->alipayOrderNo = $alipayOrderNo;
        $this->apiParams['alipay_order_no'] = $alipayOrderNo;
    }

    public function getAlipayOrderNo()
    {
        return $this->alipayOrderNo;
    }

    public function setEndTime($endTime)
    {
        $this->endTime = $endTime;
        $this->apiParams['end_time'] = $endTime;
    }

    public function getEndTime()
    {
        return $this->endTime;
    }

    public function setMerchantOrderNo($merchantOrderNo)
    {
        $this->merchantOrderNo = $merchantOrderNo;
        $this->apiParams['merchant_order_no'] = $merchantOrderNo;
    }

    public function getMerchantOrderNo()
    {
        return $this->merchantOrderNo;
    }

    public function setOrderFrom($orderFrom)
    {
        $this->orderFrom = $orderFrom;
        $this->apiParams['order_from'] = $orderFrom;
    }

    public function getOrderFrom()
    {
        return $this->orderFrom;
    }

    public function setOrderStatus($orderStatus)
    {
        $this->orderStatus = $orderStatus;
        $this->apiParams['order_status'] = $orderStatus;
    }

    public function getOrderStatus()
    {
        return $this->orderStatus;
    }

    public function setOrderType($orderType)
    {
        $this->orderType = $orderType;
        $this->apiParams['order_type'] = $orderType;
    }

    public function getOrderType()
    {
        return $this->orderType;
    }

    public function setPageNo($pageNo)
    {
        $this->pageNo = $pageNo;
        $this->apiParams['page_no'] = $pageNo;
    }

    public function getPageNo()
    {
        return $this->pageNo;
    }

    public function setPageSize($pageSize)
    {
        $this->pageSize = $pageSize;
        $this->apiParams['page_size'] = $pageSize;
    }

    public function getPageSize()
    {
        return $this->pageSize;
    }

    public function setStartTime($startTime)
    {
        $this->startTime = $startTime;
        $this->apiParams['start_time'] = $startTime;
    }

    public function getStartTime()
    {
        return $this->startTime;
    }
}
